A debugger is a tool used by a developer to understand the operation of a program. A debugger stops execution of a program at a breakpoint so the developer can observe and/or alter the state of the program. A breakpoint can specify when execution of the program is paused. Debuggers may use different types of breakpoints. A breakpoint may be specified as a line number in a source code listing or a memory location that is accessed in a particular manner. When a breakpoint is reached, the debugger suspends execution of the program and informs the developer that the breakpoint has been reached. The developer may dump register values, alter data values, modify the source code and so forth, and when finished, the developer resumes execution of the program. The program continues execution of the program until the next breakpoint is reached or the debugger finishes execution of the program.